package com.youlu.campus.entity;

import com.youlu.campus.base.base.EntityBase;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;

import java.util.Date;
import java.util.HashMap;

/**
 * 运营任务,日常批量修改电子证书、订单提示语等操作
 * 任务操作：正向操作、逆向操作
 */
@Getter
@Setter
@Document(collection = "operator_task")
public class OperatorTask extends EntityBase {
    /**
     * 活动ID
     */
    private String activityId;
    /**
     * 活动名
     */
    private String activityName;
    /**
     * digital-ca-info:电子证书信息
     * order-tips
     */
    private String type;
    /**
     * 状态
     * todo:待执行
     * doing:执行中
     * done:执行完成
     * re-todo:逆向待执行
     * re-doing:逆向执行中
     * re-done:逆向执行完成
     * stop: 停止
     */
    private String status;
    /**
     *
     * 数量
     *
     */
    private Long count;
    /**
     * 逆向操作数量
     */
    private Long reversalCount;
    /**
     * 操作人
     */
    private String optUser;
    /**
     * 描述
     */
    private String desc;
    /**
     * SQL
     */
    private String sql;
    /**
     * 执行的Query
     */
    private Query query;
    /**
     * 执行更新
     */
    private Update update;
    /**
     * 条件和动作都是<K,V>
     * 条件
     * receiveStartTime:领取开始时间
     * receiveEndTime:领取结束时间
     */
    private HashMap<String, Object> conditions = new HashMap<>();
    /**
     * 执行动作
     * caTime:证书时间
     */
    private HashMap<String, Object> actions = new HashMap<>();
    /**
     * 执行前动作，方便回滚的时候操作
     * toDoCaTime:证书时间
     */
    private HashMap<String, Object> beforeActions = new HashMap<>();
    /**
     * 完成时间
     */
    private Date doneTime;
    /**
     * 耗时，单位秒
     */
    private Integer timeConsuming;
}
